#define _CRT_SECURE_NO_WARNINGS 1
#include "SList.h"
void test1()
{
	SL* plist = NULL;
	SLPushFront(&plist, 1);
	SLPushFront(&plist, 2);
	SLPushFront(&plist, 3);
	SLPushFront(&plist, 4);
	SLPushFront(&plist, 5);
	SLPushFront(&plist, 6);

	SLPrint(plist);
}

void test2()
{
	SL* plist2 = NULL;
	//SLPushFront(&plist2, 0);
	SLPushBack(&plist2, 1);
	SLPushBack(&plist2, 2);
	SLPushBack(&plist2, 3);
	SLPushBack(&plist2, 4);
	SLPushBack(&plist2, 5);
	SLPushBack(&plist2, 6);

	SLPrint(plist2);
}

void test3()
{
	SL* list3 = NULL;
	SLPushBack(&list3, 1);
	SLPushBack(&list3, 2);
	SLPushBack(&list3, 3);
	SLPushBack(&list3, 4);
	SLPushBack(&list3, 5);
	SLPushBack(&list3, 6);
	SLPushBack(&list3, 7);

	SLPrint(list3);

	/*SLPopBack(&list3);
	SLPopBack(&list3);
	SLPopBack(&list3);
	SLPopBack(&list3);
	SLPopBack(&list3);
	SLPopBack(&list3);
	SLPopBack(&list3);
	SLPopBack(&list3);*/
	SLPopFront(&list3);
	SLPopFront(&list3);
	SLPopFront(&list3);
	//SLPopFront(&list3);
	//SLPopFront(&list3);
	//SLPopFront(&list3);
	//SLPopFront(&list3);
	//SLPopFront(&list3);

	SLPrint(list3);

}

void test4()
{
	SL* list4 = NULL;
	SLPushBack(&list4, 1);
	SLPushBack(&list4, 2);
	SLPushBack(&list4, 3);
	SLPushBack(&list4, 4);
	SLPushBack(&list4, 5);
	SLPushBack(&list4, 6);
	SLPushBack(&list4, 7);

	SLPrint(list4);

	SL* node = SLFind(&list4, 5);
	printf("%d\n", node->data);
}

void test5()
{
	SL* list5 = NULL;
	SLPushBack(&list5, 1);
	SLPushBack(&list5, 3);
	SLPushBack(&list5, 5);
	SLPushBack(&list5, 7);
	SLPushBack(&list5, 9);

	SLPrint(list5);

	SL* node1 = SLFind(&list5, 1);
	SL* node2 = SLFind(&list5, 3);
	SL* node3 = SLFind(&list5, 7);
	SL* node4 = SLFind(&list5, 9);
	SLInsertFront(&list5, node1, 0);
	SLInsertAfter(&list5, node1, 2);
	SLInsertAfter(&list5, node2, 4);
	SLInsertFront(&list5, node3, 6);
	SLInsertAfter(&list5, node4, 10);

	SLPrint(list5);
}

int main()
{
	//test1();
	//test2();
	//test3();
	//test4();
	test5();

	return 0;
}